package com.shop.cereshop.app.service.msg;

import com.shop.cereshop.app.domain.msg.UnreadMsgCountVO;
import com.shop.cereshop.app.domain.notice.SystemNoticeVO;
import com.shop.cereshop.app.page.recommend.InteractiveMsgVO;
import com.shop.cereshop.app.param.sysmsg.ReadAllMsgParam;
import com.shop.cereshop.commons.domain.common.Page;
import com.shop.cereshop.commons.result.Result;

public interface SysMsgService {

    /**
     * 获取未读消息数量统计
     * @param userId 用户id
     * @return 响应结果
     */
    Result<UnreadMsgCountVO> getUnreadMsgCount(Long userId);

    /**
     * 设置所有消息已读
     * @param buyerUserId 用户id
     * @param param 参数
     * @return 响应结果
     */
    Result<Boolean> setReadAllMsg(Long buyerUserId, ReadAllMsgParam param);

    /**
     * 获取系统通知/公告列表
     * @param page 页码
     * @param pageSize 页大小
     * @param buyerUserId 用户id
     * @return 响应结果
     */
    Result<Page<SystemNoticeVO>> getSystemNoticePage(Integer page, Integer pageSize, Long buyerUserId);

    /**
     * 获取互动消息列表
     * @param page 页码
     * @param pageSize 页大小
     * @param buyerUserId 用户id
     * @return 响应结果
     */
    Result<Page<InteractiveMsgVO>> getInteractiveMsgPage(Integer page, Integer pageSize, Long buyerUserId);
}
